home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / parcs / parcs.lha / sample / 5house next >
Text File  |  1992-06-08  |  657b  |  27 lines

  1. defdomain from1to5 int{1..5}.
  2.  
  3. houses([N1,N2,N3,N4,C5,C1,C2,C3,C4,C5,P1,P2,P3,P4,P5,A1,A2,A3,A4,A5,D1,D2,D3,D4,D5]) :-
  4.  
  5.     from1to5(N1,N2,N3,N4,C5,C1,C2,C3,C4,C5,P1,P2,P3,P4,P5,A1,A2,A3,A4,A5,D1,D2,D3,D4,D5),
  6.     N1=C2,N2=A1,N3=P1,N4=D3,N5=1,D5=3,P3=D1,C1=D4,P5=A4,P2=C3,
  7.     C1=C5+1,
  8.     plusorminus1(A3,P4),
  9.     plusorminus1(A5,P2),
  10.     plusorminus1(1,C4),
  11.     alldif([N1,N2,N3,N4,N5]),
  12.     alldif([C1,C2,C3,C4,C5]),
  13.     alldif([P1,P2,P3,P4,P5]),
  14.     alldif([A1,A2,A3,A4,A5]),
  15.     alldif([D1,D2,D3,D4,D5]).
  16.  
  17.  
  18. plusorminus1(X,Y) :- X = Y-1.
  19.  
  20. plusorminus1(X,Y) :- X = Y+1.
  21.  
  22. alldif([]).
  23. alldif([A|X]) :- different(A,X),alldif(X).
  24.  
  25. different(A,[]).
  26. different(A,[B|X]) :- A!=B,different(A,X).
  27.